home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 February / PCWorld_2006-02_cd.bin / software / vyzkuste / triky / triky.exe / httrack-3.33.exe / {app} / src / htsopt.h < prev    next >
C/C++ Source or Header  |  2005-01-08  |  9KB  |  219 lines

  1. /* ------------------------------------------------------------ */
  2. /*
  3. HTTrack Website Copier, Offline Browser for Windows and Unix
  4. Copyright (C) Xavier Roche and other contributors
  5.  
  6. This program is free software; you can redistribute it and/or
  7. modify it under the terms of the GNU General Public License
  8. as published by the Free Software Foundation; either version 2
  9. of the License, or any later version.
  10.  
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with this program; if not, write to the Free Software
  18. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  19.  
  20.  
  21. Important notes:
  22.  
  23. - We hereby ask people using this source NOT to use it in purpose of grabbing
  24. emails addresses, or collecting any other private information on persons.
  25. This would disgrace our work, and spoil the many hours we spent on it.
  26.  
  27.  
  28. Please visit our Website: http://www.httrack.com
  29. */
  30.  
  31.  
  32. /* ------------------------------------------------------------ */
  33. /* File: HTTrack parameters block                               */
  34. /*       Called by httrack.h and some other files               */
  35. /* Author: Xavier Roche                                         */
  36. /* ------------------------------------------------------------ */
  37.  
  38.  
  39. #ifndef HTTRACK_DEFOPT
  40. #define HTTRACK_DEFOPT
  41.  
  42. #include <stdio.h>
  43. #include "htsbasenet.h"
  44. #include "htsbauth.h"
  45.  
  46. // structure proxy
  47. typedef struct t_proxy {
  48.   int active;
  49.   char name[1024];
  50.   int port;
  51.   char bindhost[256];   // bind this host
  52. } t_proxy; 
  53.  
  54. /* Structure utile pour copier en bloc les paramΦtres */
  55. typedef struct htsfilters {
  56.   char***  filters;
  57.   int*     filptr;
  58.   //int*    filter_max;
  59. } htsfilters;
  60.  
  61. /* User callbacks chain */
  62. typedef int (*htscallbacksfncptr)(void);
  63. typedef struct htscallbacks htscallbacks;
  64. struct htscallbacks {
  65.   char callbackName[128];
  66.   void* moduleHandle;
  67.   htscallbacksfncptr exitFnc;
  68.   htscallbacks * next;
  69. };
  70.  
  71. /* Structure Θtat du miroir */
  72. typedef struct htsoptstate {
  73.   int stop;
  74.   int exit_xh;
  75.   int back_add_stats;
  76.   /* */
  77.   int mimehtml_created;
  78.   char mimemid[256];
  79.   FILE* mimefp;
  80.   /* */
  81.   htscallbacks callbacks;
  82. } htsoptstate;
  83.  
  84.  
  85. // paramΦtres httrack (options)
  86. typedef struct httrackp {
  87.   int wizard;       // wizard aucun/grand/petit
  88.   int flush;        // fflush sur les fichiers log
  89.   int travel;       // type de dΘplacements (same domain etc)
  90.   int seeker;       // up & down
  91.   int depth;        // nombre de niveaux de rΘcursion
  92.   int extdepth;     // nombre de niveaux de rΘcursion α l'ΘxtΘrieur
  93.   int urlmode;      // liens relatifs etc   
  94.   int debug;        // mode dΘbug log
  95.   int getmode;      // sauver html, images..
  96.   FILE* log;        // fichier log
  97.   FILE* errlog;     // et erreur
  98.   LLint maxsite;        // taille max site
  99.   LLint maxfile_nonhtml; // taille max non html
  100.   LLint maxfile_html;   // taille max html
  101.   int maxsoc;           // nbre sockets
  102.   LLint fragment;       // fragmentation d'un site
  103.   int nearlink;         // prendre les images/data proche d'une page mais α l'extΘrieur
  104.   int makeindex;        // faire un index
  105.   int kindex;           // et un index 'keyword'
  106.   int delete_old;       // effacer anciens fichiers
  107.   int timeout;          // nombre de secondes de timeout
  108.   int rateout;          // nombre d'octets minium pour le transfert
  109.   int maxtime;          // temps max en secondes
  110.   int maxrate;          // taux de transfert max
  111.   float maxconn;        // nombre max de connexions/s
  112.   int waittime;         // dΘmarrage programmΘ
  113.   int cache;            // gΘnΘration d'un cache
  114.   //int aff_progress;     // barre de progression
  115.   int shell;            // gestion d'un shell par pipe stdin/stdout
  116.   t_proxy proxy;        // configuration du proxy
  117.   int savename_83;      // conversion 8-3 pour les noms de fichiers
  118.   int savename_type;    // type de noms: structure originale/html-images en un seul niveau
  119.   char savename_userdef[256];  // structure userdef (ex: %h%p/%n%q.%t)
  120.   int mimehtml;         // MIME-html
  121.   int user_agent_send;  // user agent (ex: httrack/1.0 [sun])
  122.   char user_agent[128];
  123.   char referer[256];    // referer 
  124.   char from[256];       // from
  125.   char path_log[1024];  // chemin pour cache et log
  126.   char path_html[1024]; // chemin pour miroir
  127.   char path_bin[1024];  // chemin pour templates
  128.   int retry;            // nombre d'essais supplΘmentaires en cas d'Θchec
  129.   int makestat;         // mettre α jour un fichier log de statistiques de transfert
  130.   int maketrack;        // mettre α jour un fichier log de statistiques d'opΘrations
  131.   int parsejava;        // parsing des classes java pour rΘcupΘrer les class, gif & cie
  132.   int hostcontrol;      // abandon d'un host trop lent etc.
  133.   int errpage;          // gΘnΘrer une page d'erreur en cas de 404 etc.
  134.   int check_type;       // si type inconnu (cgi,asp,/) alors tester lien (et gΘrer moved Θventuellement)
  135.   int all_in_cache;     // tout mettre en cache!
  136.   int robots;           // traitement des robots
  137.   int external;         // pages externes->pages d'erreur
  138.   int passprivacy;      // pas de mot de pass dans les liens externes?
  139.   int includequery;     // include la query-string
  140.   int mirror_first_page; // miroir des liens
  141.   char sys_com[2048];   // commande systΦme
  142.   int sys_com_exec;     // executer commande 
  143.   int accept_cookie;    // gestion des cookies
  144.   t_cookie* cookie;
  145.   int http10;           // forcer http 1.0
  146.   int nokeepalive;      // pas de keep-alive
  147.   int nocompression;    // pas de compression
  148.   int sizehack;         // forcer rΘponse "mis α jour" si taille identique
  149.   int urlhack;          // force "url normalization" to avoid loops
  150.   int tolerant;         // accepter content-length incorrect
  151.   int parseall;         // essayer de tout parser (tags inconnus contenant des liens, par exemple)
  152.   int parsedebug;       // dΘbugger parser (debug!)
  153.   int norecatch;        // ne pas reprendre les fichiers effacΘs localement par l'utilisateur
  154.   int verbosedisplay;   // animation textuelle
  155.   char footer[256];     // ligne d'infos
  156.   int maxcache;         // maximum en mΘmoire au niveau du cache (backing)
  157.   //int maxcache_anticipate; // maximum de liens α anticiper (majorant)
  158.   int ftp_proxy;        // proxy http pour ftp
  159.   char filelist[1024];  // fichier liste URL α inclure
  160.   char urllist[1024];   // fichier liste de filtres α inclure
  161.   htsfilters filters;   // contient les pointeurs pour les filtres
  162.   void* hash;           // hash structure
  163.   void* robotsptr;         // robots ptr
  164.   char lang_iso[64];    // en, fr ..
  165.   char mimedefs[2048];  // ext1=mimetype1\next2=mimetype2..
  166.   //
  167.   int maxlink;          // nombre max de liens
  168.   int maxfilter;        // nombre max de filtres
  169.   //
  170.   char* exec;           // adresse du nom de l'Θxecutable
  171.   //
  172.   int quiet;            // poser des questions autres que wizard?
  173.   int keyboard;         // vΘrifier stdin
  174.   //
  175.   int is_update;        // c'est une update (afficher "File updated...")
  176.   int dir_topindex;     // reconstruire top index par la suite
  177.   //
  178.   htsoptstate state;    // Θtat
  179. } httrackp;
  180.  
  181. // stats for httrack
  182. typedef struct hts_stat_struct {
  183.   LLint HTS_TOTAL_RECV;      // flux entrant reτu
  184.   LLint stat_bytes;          // octets Θcrits sur disque
  185.   // int HTS_TOTAL_RECV_STATE;  // status: 0 tout va bien 1: ralentir un peu 2: ralentir 3: beaucoup
  186.   TStamp stat_timestart;     // dΘpart
  187.   //
  188.   LLint total_packed;        // flux entrant compressΘ reτu
  189.   LLint total_unpacked;      // flux entrant compressΘ reτu
  190.   int   total_packedfiles;   // fichiers compressΘs
  191.   //
  192.   TStamp istat_timestart[2];   // dΘpart pour calcul instantannΘ
  193.   LLint  istat_bytes[2];       // calcul pour instantannΘ
  194.   TStamp istat_reference01;    // top dΘpart donnΘ par #0 α #1
  195.   int    istat_idlasttimer;    // id du timer qui a rΘcemment donnΘ une stat
  196.   //
  197.   int stat_files;            // nombre de fichiers Θcrits
  198.   int stat_updated_files;    // nombre de fichiers mis α jour
  199.   //
  200.   int stat_nrequests;        // nombre de requΩtes sur socket
  201.   int stat_sockid;           // nombre de sockets allouΘes au total
  202.   int stat_nsocket;          // nombre de sockets
  203.   int stat_errors;           // nombre d'erreurs
  204.   int stat_errors_front;     // idem, mais au tout premier niveau
  205.   int stat_warnings;         // '' warnings
  206.   int stat_infos;            // '' infos
  207.   int nbk;                   // fichiers anticipΘs en arriΦre plan et terminΘs
  208.   LLint nb;                  // donnΘes transfΘrΘes actuellement (estimation)
  209.   //
  210.   LLint rate;
  211.   //
  212.   TStamp last_connect;      // last connect() call
  213.   TStamp last_request;      // last request issued
  214. } hts_stat_struct;
  215.  
  216.  
  217. #endif
  218.  
  219.